iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
Mobile Development

自己的 app 自己寫系列 第 9

[Day9] 寫文件的都是天使可是大天使在哪裡

  • 分享至 

  • xImage
  •  

當官網文件怎麼翻都看不懂的時候,就只能點點右鍵 Jump to Definition 了呢。
不過今天寫一點在翻定義時看到的幾個 swift 小知識。

Task

Task 是用來處理 swift 的異步操作,需要等待異步函數的內容可以包在 Task 當中,裡面的函數會依序執行。而 Task 外的內容則是併發的,不會被 block 到。而如果需要 multi-thread 的話,可以在函數中使用多個 Task { ...} ,達成多線程的效果。實際上背後的運行邏輯並不是完全的多線程,而是由 Swift Concurrency 去排程執行,但和多線程相比更加輕量,也應該能滿足大部份關於平行的要求。而 Swift Concurrency 也支援用 actor 來避免 race condition,確保用 actor 定義的 instance 在任何時刻只有一個 Task 可以訪問。

anonymous parameter

swift 中在定義函數時,可以用 _ 來省略參數名稱。在調用函數時,如果明確指定參數名稱和值的對應,閱讀起來會較清晰,但當參數意義相當明顯且想要省略時,佔位符可以讓程式碼更加簡潔。佔位符也可以放在任意位置上,使用起來大概如下所示。

func example(_ fir: Int, sec: Int, _ third: Int = 3) {
    ...
}

example(1, sec: 2, 3)

上一篇
[Day8] 想屯稿的夢想只是海市蜃樓
下一篇
[Day10] 一點一點一行一行
系列文
自己的 app 自己寫13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言